{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-03-18T16:48:09.522690Z",
     "start_time": "2018-03-18T16:48:09.357156Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "import sys\n",
    "sys.path.insert(0, '../src/easyesn/')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-03-18T16:48:11.750571Z",
     "start_time": "2018-03-18T16:48:09.562221Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using Numpy backend.\n"
     ]
    }
   ],
   "source": [
    "from easyesn.optimizers import GradientOptimizer\n",
    "from easyesn import PredictionESN\n",
    "from easyesn.optimizers import GridSearchOptimizer\n",
    "from easyesn import helper as hlp\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "np.random.seed(42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-03-18T16:48:11.789548Z",
     "start_time": "2018-03-18T16:48:11.770551Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "inputLength = 1000\n",
    "trainingLength = int(inputLength*0.7)\n",
    "data = np.linspace(0, 10*np.pi, inputLength).reshape(-1,1)\n",
    "\n",
    "inputData = np.sin(data)\n",
    "outputData = np.cos(data)\n",
    "\n",
    "inputDataTraining = inputData[:trainingLength]\n",
    "inputDataValidation = inputData[trainingLength:]\n",
    "\n",
    "outputDataTraining = outputData[:trainingLength]\n",
    "outputDataValidation = outputData[trainingLength:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## (Repeated) One Step Prediction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-03-18T16:48:12.371177Z",
     "start_time": "2018-03-18T16:48:12.357180Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "esn = PredictionESN(n_input=1, n_output=1, n_reservoir=50, leakingRate=0.2, regressionParameters=[1e-2], solver=\"lsqr\", feedback=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-03-18T16:48:13.168371Z",
     "start_time": "2018-03-18T16:48:13.092354Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100% (616 of 616) |###############################################################| Elapsed Time: 0:00:00 Time: 0:00:00\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.0073178009529016414"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "esn.fit(inputDataTraining, outputDataTraining, transientTime=\"Auto\", verbose=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-03-18T16:48:13.644720Z",
     "start_time": "2018-03-18T16:48:13.620210Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "one_step_prediction = esn.predict(inputDataValidation)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-03-18T16:48:14.499031Z",
     "start_time": "2018-03-18T16:48:14.195918Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x23ffcbb2748>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(one_step_prediction.T[0, :])\n",
    "plt.plot(outputDataValidation)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Generative task"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-03-18T16:48:15.217961Z",
     "start_time": "2018-03-18T16:48:15.205946Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "esn = PredictionESN(n_input=0, n_output=1, n_reservoir=50, leakingRate=0.2, regressionParameters=[1e-2], solver=\"lsqr\", feedback=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-03-18T16:48:16.011341Z",
     "start_time": "2018-03-18T16:48:15.909299Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100% (600 of 600) |###############################################################| Elapsed Time: 0:00:00 Time: 0:00:00\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.0024808445260868848"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "esn.fit(None, inputDataTraining, transientTime=100, verbose=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-03-18T16:48:17.233856Z",
     "start_time": "2018-03-18T16:48:17.154859Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "generation = esn.generate(n=len(inputDataValidation), inputData=None, initialOutputData=inputDataTraining[-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-03-18T16:48:18.556309Z",
     "start_time": "2018-03-18T16:48:18.077812Z"
    },
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAD8CAYAAABzTgP2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4U2ea9/HvLcndxgVsA6aDqQEMmBJ6D5BCSAPSmEky\nbHaS7GbaTrKz0zPvZKfs7JRMsmmbXkghkEASeg/FNGN6D92mujfpef+wmDXExoBlPZJ1f65Ll6VT\ndH7nOobb5z5NjDEopZRSFzlsB1BKKRVYtDAopZS6hBYGpZRSl9DCoJRS6hJaGJRSSl1CC4NSSqlL\naGFQSil1CS0MSimlLqGFQSml1CVctgNcj2bNmpl27drZjqGUUkFl48aNp40xyXVNF5SFoV27dmRl\nZdmOoZRSQUVEDl/NdNpKUkopdQktDEoppS6hhUEppdQltDAopZS6hBYGpZRSl/BJYRCRV0UkV0Ry\nahkvIvIXEdknItki0rfauAkists77ilf5FFKKXX9fLXH8Bow4QrjJwLp3tdM4HkAEXECz3nHdwem\ni0h3H2VSSil1HXxyHYMxZoWItLvCJJOBN0zVc0TXikiCiLQA2gH7jDEHAETkPe+0O3yRS6mGlJtf\nyoZD58g9XwgFJ0jhDCnxMXRs15akFh3BGZSXCSnltwvc0oAj1T4f9Q6rafjAmr5ARGZStbdBmzZt\nGialUnUoKXfz8eajvLNmP+l5C5ng3MA9jmxipOyS6YolmrMpg2h+43RcPe/QIqGCStD8thpjXgRe\nBMjMzDSW46gQY4xh7tbjPPNpDqNLF/JqxBxSw3Mpj2mBSb+XylZ9KApPJi+/iIOHDlFxeAO9Tm7E\n9ckSihb8guixTyF9HgAR26uiVJ38VRiOAa2rfW7lHRZWy3ClAsb54nJ+MGsru3fn8GrsK/QM24Zp\nkQkjniM8fdw//rOP9746Da0qJMt2n+K1eW8z6cI79J37BGWb3ydiyt8gqb3V9VGqLv46XXUu8KD3\n7KRBwAVjzAlgA5AuIu1FJByY5p1WqYCwL7eQ259bDfsWsST6J9wgh+C2vyGPLILO42vdAxARRnVt\nztPf+z6bx83ip57vUHFkE5UvDIf9S/27EkpdI1+drvou8BXQRUSOisjDIvKoiDzqnWQ+cADYB7wE\nfBfAGFMJPA58CewEZhljtvsik1L1lX30PHf8fTXjiufzctjvCU/ugHx3DfS9+paQ0yE8PKwjDzz2\nc74d+Sf2l8XjeetO2Phaw4ZXqh6k6kSh4JKZmWn07qqqIe04ns/0l9bybdcXPFnxCqSPh7tehYi4\n6/7Os0XlPPn6ch468WtGOrfCzf8F/R/2YWqlrkxENhpjMuuaTq98VuoyX58p5oFX1jHVuaSqKHS9\nBaa9U6+iAJAUE84Lj4zipVbPsNjdB+Z9Hza+7qPUSvmOFgalqikqq+Q7b2Qx2J3F05UvQKexVXsK\nzjCffH90uIuXvj2YV9J+yXJPb8xnT8K+xT75bqV8RQuDUl4ej+H7s7Zg8nbyJ9dfkRa94J43wRXh\n0+VEh7t4fsZg/hD/NHtMa9yzZkDebp8uQ6n60MKglNdraw7x1fYDfBD/V1wRMVXto/DoBllWfFQY\nf//2CL7veIoLFQ4870yFsoIGWZZS10oLg1LA7pMFPPvFTl5OepsmZSdg6lsQ36pBl9k6KZqf3X8T\n/1z2L3DuMGbeDxp0eUpdLS0MKuSVVbp58v0tTA9fzYDiZcjIp6FNjXdm8bmBHZoyYvzt/LliCpL9\nPmx51y/LVepKtDCokPc/yw9QeHIvP3W8Cm2HwtDv+XX5jw7vSHbH77DOdMMz74dw4ahfl6/U5bQw\nqJB28HQRf1u6lxcT38LlcMKUF8Dh9GsGh0P4z7v78CvHY5RXVOD59F8hCK8vUo2HFgYVsowx/PST\nHO52rqRb8UYY+3NIaF33jA0gJS6Sf54yhmcrpuLYtwiy37eSQynQwqBC2Oc5J9m5bz8/C3sLWg+C\nTLtXId/SqyWnu89go6cz7vk/huKzVvOo0KWFQYWksko3z36+i2fiZhPuKYZb/wwO+/8cfn5bT37j\nmAll+Zglz9iOo0KU/X8JSlnw5leHaXIuhwkVC5EB/wQpXW1HAiA5LoI7JoznjcpxkPW/cCLbdiQV\ngrQwqJBzvricvy7eyx/j3kWim8KIf7Md6RL3DmjDotSHOE8slfN+pAeild9pYVAh5+WVBxlasYou\n5dthzM8gKsF2pEs4HMK/3T6I31XcjevoWtj9ue1IKsRoYVAh5XxxOW+u2c9Po2dDclfoc7/tSDXq\n3TqB0humc9A0p2LhL8Hjth1JhRBfPahngojsFpF9IvJUDeN/JCJbvK8cEXGLSJJ33CER2eYdpw9Z\nUA3qlVUHGV+5lOYVR2D0f/j9moVr8YMJPfhvz1TCzuyCbR/YjqNCSL0Lg4g4geeAiUB3YLqIdK8+\njTHm98aYDGNMBvA0sNwYU/1cvFHe8XU+QEKp63WhuIK3V+/lqahPoGWfqucsBLBWidG0uHEaOZ52\nlC98BirLbUdSIcIXewwDgH3GmAPGmHLgPWDyFaafDugNYZTfvbL6ILdWLqBpZW7VsYWrfDynTd8d\nnc7zrvsJLzyC2fi/tuOoEOGLwpAGHKn2+ah32DeISDQwAfio2mADLBKRjSIy0wd5lPqGCyUVvLd6\nJz+InAPthkGHUbYjXZUmkWEMGHMXaz3dqFj6n1BebDuSCgH+Pvh8K7D6sjbSUG+LaSLwmIgMr2lG\nEZkpIlkikpWXl+ePrKoReWvtYW6r+JIm7vMw+qdBsbdw0bSBbXgt/F7CS89gNr9pO44KAb4oDMeA\n6jeYaeUdVpNpXNZGMsYc8/7MBWZT1Zr6BmPMi8aYTGNMZnJycr1Dq9BRXunh3TV7+W7EF9B+uN9u\nqe0rES4nQ8bcxgZPZ8qX/0mPNagG54vCsAFIF5H2IhJO1X/+cy+fSETigRHAnGrDYkQk7uJ7YDyQ\n44NMSv3DvG3HGVK8mCTPGRj6fdtxrss9/VvzTvjdRBSfwGybZTuOauTqXRiMMZXA48CXwE5gljFm\nu4g8KiKPVpt0CrDAGFNUbVgqsEpEtgLrgXnGmC/qm0mpi4wx/O/KfTwRPg/TIgM6jLQd6bpEuJz0\nHX03OzxtKVn6R72uQTUoly++xBgzH5h/2bAXLvv8GvDaZcMOAL19kUGpmqw/eJbWJxfTKvw4DHs2\nqI4tXO6eAW349ZI7eSb/vzA7P0V63G47kmqk9Mpn1ai9vPIAj4d/iiepU8Bft1CXCJeTrqPv56An\nlaIlv9d7KKkGo4VBNVqHThdRtnsR3TiIY+iTAX2V89W6q3873nJOIfZMDhxaZTuOaqS0MKhG6621\nh3nI9QXumBTodY/tOD4RGeYkcdD9nDWxFK74q+04qpHSwqAapdIKN+s3rmekYwvO/o+AK8J2JJ+5\nb2gXZplxRB9cAGcP2o6jGiEtDKpR+jznBHdUzMPjCIfMb9uO41OJMeEU9pqB2zgoWvW87TiqEdLC\noBqlT77ayT2uFcgNd0Bsiu04Pjd19EA+9wzEufUtKCuwHUc1MloYVKOz51QBHY7NIZpSZNCjdc8Q\nhFonRbO73X1Euoso3aC3yVC+pYVBNTrvrj3It1wLqEgbUHV77UZq3Phb2OTpRPnqv4PHYzuOakS0\nMKhGpaTcTe7mz2grpwi78Z9tx2lQGa0TWBJ/B01KjuDZt9h2HNWIaGFQjcpn2ce50/0l5VEp0O1W\n23EaXPqI6Zw2TTi74n9sR1GNiBYG1agsXb+Jkc6thGU+CM4w23Ea3ISMtsxzjCLx6GLIP247jmok\ntDCoRuPI2WK6HJ+NANJvhu04fhHhcuLOeBAnHs6vfsV2HNVIaGFQjcbHGw8x1bmMsnajIaGN7Th+\nc/Oooazy9EQ2v6l3XVU+oYVBNQrGGE5tmENzOUfkoIdtx/Gr1CaR7Eq7k/jyU5Tu1LvWq/rTwqAa\nhQ2HzjGu5HNKIlMh/SbbcfwuY9y95JoEzi7Xg9Cq/rQwqEZh8VfrGeHIxpX5IDh98piRoNKvfQoL\nI8bTPHcFnD9iO44Kcj4pDCIyQUR2i8g+EXmqhvEjReSCiGzxvn52tfMqVZeScjcJu2eBQFhmaBx0\nvpyI4Oo/AweG3FWv246jgly9C4OIOIHngIlAd2C6iHSvYdKVxpgM7+tX1zivUrX6Muc4t7Kc/JbD\nIKG17TjW3DRkAGs93XFue1cf4qPqxRd7DAOAfcaYA8aYcuA9YLIf5lUKgB1r5tFKTtNkUGjuLVyU\nEB3OgbTJNC07StmBNbbjqCDmi8KQBlRvah71DrvcYBHJFpHPRaTHNc6rVI2Ony+h66lPKXXG4uh2\ns+041nUedT+FJpLjy16yHUUFMX8dfN4EtDHG9AL+CnxyrV8gIjNFJEtEsvLy8nweUAWneVm7mehY\nT0W3KRAWZTuOdf3S01gZNoTmR7+A8iLbcVSQ8kVhOAZUb+y28g77B2NMvjGm0Pt+PhAmIs2uZt5q\n3/GiMSbTGJOZnJzsg9iqMSjY+BFRUk7cwNBuI10kIlT2upcoU8Lxr963HUcFKV8Uhg1Auoi0F5Fw\nYBowt/oEItJcRMT7foB3uWeuZl6larP7ZAFDihZwIbodtMq0HSdgDBl9K1+bFMqz3rIdRQWpehcG\nY0wl8DjwJbATmGWM2S4ij4rIxaek3AXkiMhW4C/ANFOlxnnrm0mFhhVr1zLQsQtn3/uh6u8OBSTF\nRrA5aRLtCjZScVqfCa2unU+uBPK2h+ZfNuyFau//BvztaudVqi7GGMJyZuHBQeyA+2zHCThJg7+F\n57PX+XrpK3S8+xnbcVSQ0SufVVDa8vVZxlYs4VTyjdCkpe04AWdQ395scNxA/O4P9Olu6pppYVBB\nKXt11bUL8SF+7UJtwpwOTrS7k2aVJ8nfs9x2HBVktDCooOP2GJL2fkyJxBDd6zbbcQJW11HTKTIR\nnFj5hu0oKshoYVBBZ8OeY4z0rCWvzU167cIVdG3TnHURg0k7/iVUltmOo4KIFgYVdPat+Yg4KSF1\n8AO2owQ8d4+7iDVFHFk/x3YUFUS0MKigUl7pocXXn5HvTCIifYTtOAEvc/QdnDFNKNjwju0oKoho\nYVBBZU3OfoaaTVzoeBs4nLbjBLzEuGiyE0bT8dwqKorO2Y6jgoQWBhVUjq+dRYRU0mKYtpGuVmzm\nvURQwZ5l79qOooKEFgYVNEor3LQ/8Tmnw1vhatXPdpygkXHjWI7QHMf2D21HUUFCC4MKGuuydzCQ\nHAo73663wLgGYS4n+1In0LloE4Wn9bGfqm5aGFTQOLf+PRxiSNM20jVLHnI/TjHsX6LXNKi6aWFQ\nQaGs0k3HU59zNLIzYaldbccJOj16ZrLL0ZG4vbNtR1FBQAuDCgqbNmfRk/2Udr3DdpSgJCKcaHMr\nHSr2cuZQju04KsBpYVBBIX/9e3gQ2gy/33aUoNVuxIN4jHBo+Zu2o6gAp4VBBbzyCjdd8j7nQHRv\nwpNa1z2DqlH79h3ZHtaD5K/ngTG246gApoVBBbzsrOW04wTl3e60HSXo5Xe8lTbuIxzZnWU7igpg\nPikMIjJBRHaLyD4ReaqG8feJSLaIbBORNSLSu9q4Q97hW0REf1vVNxRnvUeFcdJx5L22owS99FH3\n4TbCsVVv246iAli9n+AmIk7gOWAccBTYICJzjTE7qk12EBhhjDknIhOBF4GB1caPMsacrm8W1fhU\nVFaSfmYRu2MHcENcM9txgl5K89Zsi8yg1bEvMB4P4tCmgfomX/xWDAD2GWMOGGPKgfeAydUnMMas\nMcZcvFHLWqCVD5arQsD29YtpwRk8PW63HaXRKO0ymVbmBDs3r7YdRQUoXxSGNKD65ZRHvcNq8zDw\nebXPBlgkIhtFZGZtM4nITBHJEpGsvLy8egVWwaNw04eUGxedh021HaXR6DrqXiqMk7Pr9d5JqmZ+\n3Y8UkVFUFYYfVxs81BiTAUwEHhOR4TXNa4x50RiTaYzJTE5O9kNaZVtlZSUdTy9hd2x/IuMSbcdp\nNOISU9kd3ZcOpxbiduvzoNU3+aIwHAOqn0PYyjvsEiLSC3gZmGyMOXNxuDHmmPdnLjCbqtaUUuzY\nsIQWnMZ01zaSr1V0m0JLctmZtdR2FBWAfFEYNgDpItJeRMKBacDc6hOISBvgY+ABY8yeasNjRCTu\n4ntgPKCXZSoA8jdWtZHStY3kc51HTKPcuDif9b7tKCoA1fusJGNMpYg8DnwJOIFXjTHbReRR7/gX\ngJ8BTYG/S9VdMSuNMZlAKjDbO8wFvGOM+aK+mVTwc7vddDq9mF2xA+jVRNtIvhYT35Ts2AF0yltE\nZWUlLle9/ytQjYhPfhuMMfOB+ZcNe6Ha+0eAR2qY7wDQ+/LhSu3YsISenOZktx/ZjtJome5TaL7h\nR2xdt4jeQybYjqMCiJ7ErAJSwcYPqs5GGn6P7SiNVpcR91BqwijcNMt2FBVgtDCogON2u+mQt5hd\nMf2JbpJkO06jFRmbwO64G+l8ZjEVFRW246gAooVBBZzdWUtpzmkqu02ue2JVL9LzDpI5T85XemhP\n/R8tDCrgXNg4y9tG0rORGlqXYXdSTATFmz+wHUUFEC0MKqB43G7a5y5mZ0x/YuO1jdTQIqKbsLfJ\nYLqeXUZpWbntOCpAaGFQAWXPJm8bqau2kfzF1XMKTeUC29bMr3tiFRK0MKiAcn6Dno3kb52H3kEJ\nEZRt+ch2FBUgtDCogFHVRlrIjpj+xCU0tR0nZIRFxbE3fghdzy+npLTMdhwVALQwqICxd/NSUjlD\neRdtI/lbeK87aCYXyF6t7SSlhUEFkIttpC4jtI3kb52GTKlqJ2VrO0lpYVABwnjctDu1kO3RmcRr\nG8nvXJGx7EsYQo/zyykqKbUdR1mmhUEFhH2blmkbybLIjLtoKvlsWfWZ7SjKMi0MKiCcy5qlbSTL\nOt54O8VEUpk923YUZZkWBmXdxTZSTnQmCYnNbMcJWY6IGA4kDqFn/nIKiktsx1EWaWFQ1h3YspwU\nc4byzrfZjhLyIjPuIkkK2Lpqnu0oyiKfFAYRmSAiu0Vkn4g8VcN4EZG/eMdni0jfq51XNX5n18+i\nzLjoMkLvjWRbh0FV7ST3to9tR1EW1bswiIgTeA6YCHQHpotI98smmwike18zgeevYV7ViBmPm7an\nFpAT1Z/EJG0j2eaIiOZA4jB65q/QdlII88UewwBgnzHmgDGmHHgPuPzUksnAG6bKWiBBRFpc5byq\nETu0dQUp5gxlnW+1HUV5RWXcWdVOWqlnJwUUY6DkvF8W5YvCkAYcqfb5qHfY1UxzNfOqRuzM+ve9\nbSQ9GylQtB80uaqdlKPtpICSuwN+3xF2f97giwqag88iMlNEskQkKy8v7/q/yBjfhVL1Yjxu2pxc\nQE5UJk2bJtuOo7wcEdEcSBpGr/yVXCjSdlKgKNr8IW6Ph62mY4MvyxeF4RjQutrnVt5hVzPN1cwL\ngDHmRWNMpjEmMzn5+v4TyXr9KfY+O/i65lW+93X2SlLMGUr0bKSAE51xJ4lSQPbKT21HUV4V2z5h\nvbsrUYktGnxZvigMG4B0EWkvIuHANGDuZdPMBR70np00CLhgjDlxlfP6TJkrlvSyHRzfl91Qi1DX\n4LS3jdRVb7EdcC62kzw5erFbQMjdSULRAbJihtE5Na7BF1fvwmCMqQQeB74EdgKzjDHbReRREXnU\nO9l84ACwD3gJ+O6V5q1vptq0HzYdgKOr322oRair5fHQ+sQCtkX2o1kzbSMFGgmvaif1LFjBhcJi\n23FCXtGmD/EYIaLn7X5Znk+OMRhj5htjOhtjOhpjfuMd9oIx5gXve2OMecw7vqcxJutK8zaUlm06\nst3Vg5Sv9dbCth3ZtoIUc5qSdD0bKVDF9LmbJClkq947ybqKbR+z3nRlZGZPvywvaA4++8q59pNo\n5z7Eyf1bbUcJaXnr9KK2QNdu0G0UE4nRs5Ps8raRNkQP90sbCUKwMLQbOg2PEW0n2WQMaScWsC2y\nLynJKbbTqFpIWBQHmw6nV8FKLhRoO8mWi22kcD+1kSAEC0Ortp3YEdaNZocb/lxgVbOjOStJNXkU\nd9I2UqCL6Xs3iVLIllUNdk6IqkO5t4002k9tJAjBwgBwtt3NtHMfIveAnp1kQ97a9ygzLjrr2UgB\nr+2AWykiCvTsJDtyd5JYdICNMSNI91MbCUK0MLQbOh2PEY6s0naS33nbSNkRfWme2tx2GlWHf7ST\nCldxvqDIdpyQU7DxAzxGiOrtvzYShGhhaNOuI9vDutNMz07yu+PbV5HiyaOo0y22o6irFOttJ23V\ni938rjJntreN1Muvyw3JwgBwts1E2lYeIu/gNttRQkru2vcoN046D9ezkYJF2wG3VLWTtms7ya+8\nbaTNcSNp1yzGr4sO2cLQZtjFdtI7tqOEDmNocXwBWyP60rK5tpGChYRFcbDZCHoXruRcvraT/OV8\n1iw8RojpPcXvyw7ZwtC+fSe2u7rT7LC2k/zl+I7VpHpyKeqobaRgE9f3LhKkiK0r59iOEjI8OZ9U\ntZH6++9spItCtjAAnG47kTaVhzhzUM9O8oeTX1W1kbqMmGY7irpGbfrfQiHRyI5PbEcJDbk7SSo+\nQHaTkbRKjPb74kO6MLTxXuym7SQ/MIaWx74kJ7IvLbSNFHQkLIrDzYbTu3AVZ7Wd1ODOrq9qIzXp\ne6eV5Yd0YejYIZ0cVzeS9GK3Bnd42yqam1y9N1IQi+t3DwlSRLa2kxqc2VF1NtIoP17UVl1IFwaA\n020m0abyEGcP6dlJDeni2UjaRgperTNvrmonbdd2UkMyp3bQtPgg2xNGkdok0kqGkC8MrbWd1OCM\nx0OrEwvYEdWPZsmptuOo6yRhkRxuNoKMopWcuVBgO06jddrbRorvd5e1DCFfGDp16MQ2Z3eSDs2z\nHaXR2r91FS1MLmWdtY0U7Jpk3kO8FGs7qQHJjqqzkUb1u8FahpAvDCJCXpuJtK48zPlDenZSQ8hb\nV9VG6jpS20jBrlW/SRQSjUPPTmoQ5tQOmpUcZHfSGJrGRljLUa/CICJJIrJQRPZ6fybWME1rEVkq\nIjtEZLuI/Gu1cb8QkWMissX7mlSfPNer9dCpVe0kvRW3z3ncHtqcXMSu6H7EJ+kttoOdhEVyOHkk\nGUWrOa3tJJ/LXfs+HiMkWmwjQf33GJ4CFhtj0oHF3s+XqwR+YIzpDgwCHhOR7tXG/8kYk+F9Wbna\nrHPHdLKd3Uk8qO0kX9u9aSlpnKKy62TbUZSPxF9sJ63QdpKvOXbOYYPpygiLbSSof2GYDLzuff86\n8I1bABpjThhjNnnfF1D1bOe0ei7Xp0SE3DYTaVV5mAuH9ewkXzq//j3KTBidR95rO4rykbS+Eykk\nRttJPuY+tZPk0oMcSBlLfHSY1Sz1LQypxpgT3vcngSueciIi7YA+wLpqg58QkWwRebWmVlS1eWeK\nSJaIZOXl5dUz9je1HqxnJ/laZUUFnfIWsjN2ILHxSbbjKB+RsEgOp4ykb/Fqcs/n247TaBxb+RZu\nI6QMtP+ckjoLg4gsEpGcGl6X9AaMMQYwV/ieWOAj4EljzMXfpueBDkAGcAL4Y23zG2NeNMZkGmMy\nk5OT616za9Q1vRNbnd1J1LOTfGbnui9J5hzmBjtXb6qGk5B5D02kmJwVutfgE8YQtWc2G+QGhmT0\nsJ2m7sJgjBlrjLmhhtcc4JSItADw/syt6TtEJIyqovC2Mebjat99yhjjNsZ4gJeAAb5YqeshIuS2\nnkhaxWEKDm+1FaNRKd70PsUmgm4j7rYdRflYWt9JVe2knXqcwRdKv95IcvkxjracRGSY03acereS\n5gIzvO9nAN/4LRERAV4Bdhpj/uuycS2qfZwC5NQzT72kDZlOpXFwbOWbNmM0CuVlZXQ5u4Qd8cOI\njPbfIwmVn7jC+TplJH2L15B79oLtNEHv2Io3KDMuWg8NjOeU1LcwPAuME5G9wFjvZ0SkpYhcPMNo\nCPAAMLqG01J/JyLbRCQbGAV8r5556qVHekc2OHvT7OBcMLV2xdRVyFn5CQkUEp6hewuNVby3naQX\nu9WTx03Soc9Y6+xL/64dbKcBwFWfmY0xZ4AxNQw/Dkzyvl8FSC3zP1Cf5fuaiJDb9lZuPPgrivav\nIabTENuRglb51g+4QCzdh/r3WbXKf9L6TqJgfgxhu+bA5Adtxwla+btXkOg+w7mOT+Jw1Phfpd+F\n/JXPl2sz5B5KTRgnV2s76XpduJDPDfkr2d9sFK5wOzcBU37gCudI6mj6FK/mlLaTrtvJ1W9SZCLo\nMiIw2kigheEbendoxSpnf5IPfw7uCttxglL2sg+IlVIS+k+3HUU1sKqzk0rYpmcnXZ/Kcloc+5K1\n4TfStXXg3BlAC8NlHA7hdPvbaOI5T/HuxbbjBKWwHR9zVhJon3mT7SiqgbXsM4ECiSF8lxaG65G7\n5XPiTCGlXW+n6jydwKCFoQadh9zOBRNN3pq3bUcJOkdPnCKjdB1HW96EOOt1CEsFA1c4X6eOo2/J\nGk6dPmM7TdA5u+4dzplYeo+YYjvKJbQw1KBP++Ysdw0m5dhCKC+2HSeo7Fz2LpFSQerg+21HUX6S\nMOh+YqWUncvetx0lqHhKC2mTt4xNMcNp1SzBdpxLaGGogYhQmD6FKFNC4bbPbMcJGsYY4vbNJdeZ\nQmr3YbbjKD9J6zWGXEkmds/HdU+s/mH/6g+JppSwDPu3wLicFoZaZAy9mZMmkXPr9N5JV2vH/oP0\nq9zC6bY3QwD1S1UDczg41vpmMso2cuTIYdtpgkbZllmcNElkjrjZdpRv0MJQi25pCawKH0bz3FVQ\ncs52nKBweNmbhImb1iMfsh1F+Vna8Bm4xMP+pW/YjhIUis6fpkv+WvY0G0d0RLjtON+ghaEWIkJF\n97sIo4Lzm3QXuS4Vbg9tj87lSHgn4tr0sh1H+VlKp74ccnUg5dBcjN41oE47l1T9EdXsxsC8Hb0W\nhisYNHQMBzzNKcp6z3aUgLdu/Vf0YB/F3fQWGKHqXKcpdPfsYfeOLbajBLyYXR/ytaTRre9w21Fq\npIXhCtoxnhVEAAAZyUlEQVQnx7I2ZjQtzm2A/OO24wS0C2vfwo2DjqNn1D2xapQ6jvoWHiOcWqV3\nDbiSYwd20q08h2Ntb0ccgflfcGCmCiDO3lNxYDj7lf6y1yY3v5iM8ws4FD8QV3yLumdQjVKT1Dbs\nju5DhxPzcLs9tuMErMNLX8VjhPZjAvdYnBaGOgy/cSDrPV1gyzt6x9VarF3yKWlymtgBeu1CqKvo\nfhetOcm29YtsRwlIHreHtkfnsCMyg+atO9mOUystDHVoER/FpoQJJJUcwhzNsh0n4BhjCMt5n2KJ\nIrX/HbbjKMs6j7qXUsIoXK+neddk+7oFpJlTlPUInBvm1UQLw1VI6H8PJSacc2tesx0l4Gw+cJyh\nFWs4lXYThEfbjqMsi4xNZFf8MG44u5CSYr1rwOUK1r1BMRH0GHOf7ShXVK/CICJJIrJQRPZ6fybW\nMt0h7wN5tohI1rXOb9tNfTuzwPQnas8cqCi1HSeg7Fr6HnFSQvPh37YdRQWIsH4PkiCFbF+mZ/NV\nd/b8BXqeX8KepDFExjSxHeeK6rvH8BSw2BiTDiz2fq7NKGNMhjEm8zrntyYxJpwDaZOJchfg3jnP\ndpyAUVRWSasjczkXlkpUp8A87U75X9fBt3KSZkRs03ZSdZsXvEWclNB0aOCfuVffwjAZeN37/nXg\nWh/XVd/5/ab7kFs4Zppy/qvX6544RCzekM0QtlLa9U4I0NPulP85XS72pd1Gj+IsTh/bbztOQDDG\nELv7Q3IdKbTOGG87Tp3q+6851Rhzwvv+JJBay3QGWCQiG0Vk5nXMb92ori2YLyNIPLES8k/UPUMI\nyF/7Bk4xNB/xsO0oKsC0GvkIDjEcXPyy7SgBIWvbDjIrN3O205Sg+COqzoQiskhEcmp4Ta4+nam6\nDr628zmHGmMygInAYyLyjb5DHfMjIjNFJEtEsvLy8uqK7XPhLgfF3e7GgYfSTbqLvO9UPkPy53M8\nvi/SLHBPu1N2tEvvwbawXqQd/BjjcduOY93RFa/jFEP70cHxR1SdhcEYM9YYc0MNrznAKRFpAeD9\nmVvLdxzz/swFZgMDvKOuan7vvC8aYzKNMZnJycnXso4+M2LwYLI8nSnLejvkr2lYtXgu7R2niBus\nB51VzQq7T6OlOcm+DQtsR7HqdEEpvfI+5euYXkQ072I7zlWp7z7NXODikZQZwJzLJxCRGBGJu/ge\nGA/kXO38gaR3q3iWR40jvnA/HNtoO441JeVumu55nxJHDHF97rIdRwWoG8beT6GJIn9taB+XW7V4\nLh3lOBEDg+ePqPoWhmeBcSKyFxjr/YyItBSR+d5pUoFVIrIVWA/MM8Z8caX5A5WIEJd5D0UmgsI1\nods7/SJrF+PMV+R3mqzXLqhaxcXFk504lm7nllBaGJq3rvd4DFHb3qJIYkgdNM12nKtWr8JgjDlj\njBljjEn3tpzOeocfN8ZM8r4/YIzp7X31MMb8pq75A9nN/bsw1z2YiF2zofSC7ThWnFz9FpFSQcqI\n79iOogJc7KBvEU0ZOxeF5nMa1u3Yz4jKNeS2uy2o/ogK/MPjASYtIYqc5ncQ5inFZH9gO47fZR89\nz9CC+ZyN64K07GM7jgpwN/QfzUFpTdyO0Dxh49DS/yVSKkgb86jtKNdEC8N1yBg4khxPO0q+ejnk\nDkIvXbqQno5DRA38lj6+U9XJ4XTwdbu76FS+i9w9G2zH8asjZ4rokzeHkzHdCG+VYTvONdHCcB0m\n9WrJh4wl+txOOLbJdhy/uVBSQYu971AuEUT1C8wnT6nA03HcTEpMOKeWPGc7il8tXDifro4jRA0K\n3Ntr10YLw3WIiXBBz7soMhGUr3/Fdhy/+WTNDm6VVRR2ngJRCbbjqCDRqmVL1sWMpOPJz/GUhMZx\nuaKyShJ3vUWZRBI/YLrtONdMC8N1mjKoG3Pcg3Fs/ygkDkJXuj2c/+o1oqScpBH/bDuOCjKOAY8Q\nTSn7FoXGH1Kfrc1hollNfpc7ISLOdpxrpoXhOvVqFc9XiZNxuUthy7u24zS4hdtPcGv5fM4nZUDL\n4OqXKvsGDR3HDjoSk/16oz8u5/EYzq9+lUipIHnU47bjXBctDNdJROg/eBQbPemUrXkBPI37UYYb\nln5CB8dJmgwPrrMrVGAIdzk43HEaaRWHyNu+1HacBrV890luLptHXrMBkNrddpzrooWhHiZnpPE2\nE4nIPwj7Gu+jDLcdvcCA07MpCUvA0WOK7TgqSPUc/xAXTDRnlj1vO0qD2rzofVrJaRJGBufeAmhh\nqJf4qDAcPSZzyiRS+VXj/WWfvWwd4xxZOPo9CGGRtuOoINUqtRnr4ifQ6fRiKs4dtR2nQWw7eoHM\n3A8pjEglrNvNtuNcNy0M9TRtYAfeqByH6+ASyNtjO47P5eaX0mL364gIEQMfsR1HBbnY4d9FjIfD\nn/+37SgNYvaipQx3bsM18BFwumzHuW5aGOqpX9tENjabTDlhmPUv2o7jc2+uyGGqYwklnW6GxLa2\n46ggN7BvJiucg2i+910oL7Idx6cOnymi3f63qJQwIgcEzw3zaqKFoZ5EhClDezGn8kY8m9+GkvO2\nI/nMhZIKKja8SRMpJmbkk7bjqEbA6RDO9Z5JrCnk5IpXbcfxqbeWbOJux3Iqut8JsXYeDeArWhh8\nYHJGGh+G3YKzshg2vmY7js+8/dV+7jPzKErNhFaZdc+g1FUYM/YWtppOONc/32jO5ssrKCM2+3Wi\npJyoEd+zHafetDD4QGSYk4wBw1nluQH3muegotR2pHorKXdzeNX7tHbk6d6C8qn4mHB2tX+Q5PJj\nnN8613Ycn3hr5U7ud3xBUbuxkNLVdpx608LgIw8MassLlbfhLM6F7Pdsx6m3WVlHmFo5l9K4ttBl\nku04qpEZMOlbHDPNKFga/AehzxWVU7D2DZpKATEjv287jk9oYfCRVonRxHQdzXY64ln1Zwji59xW\nuD2sXfYZfR37iBj6GDictiOpRqZ9Sjwrm91D6/zNlO1fbTtOvby8Yi8z5FNKUvpA28G24/hEvQqD\niCSJyEIR2ev9mVjDNF1EZEu1V76IPOkd9wsROVZtXFD/aTpjSHv+Wn4rjnMHYEdAP6X0imZvPsb0\nkvcoj0hC+txvO45qpDre9BinTRPOfP6M7SjX7UxhGce/mkVbySVq5Pcaza3o67vH8BSw2BiTDiz2\nfr6EMWa3MSbDGJMB9AOKgdnVJvnTxfHGmPmXzx9MbuzQlOPNR/G1tMSs+lNQ3hOmvNLD4oWfMdy5\njbBhT0J4jO1IqpHKTE/js5g7aHl6De4jWbbjXJcXl+/nYT6hPL4ddL3FdhyfqW9hmAxcfNL368Dt\ndUw/BthvjDlcz+UGJBHh0VFd+Fv5zcjJbNi32HakazYr6wjTit+lPCIR6f+w7TiqERMRUsc8zjkT\nS9684NtryCso4/jaD7nBcYjwUT9uVC3X+haGVGPMCe/7k0BqHdNPAy6/FekTIpItIq/W1Iq6SERm\nikiWiGTl5eXVI3LDuqlHc7Ym3ESuIxmz9Jmg2msorXCzeNHnjHJuJWzov0BErO1IqpEb36cTn0Te\nRvOTS/Ec32o7zjV5YdleHpNZlCd0gJ732I7jU3UWBhFZJCI5NbwmV5/OGGOAWv8XFJFw4Dag+oOS\nnwc6ABnACeCPtc1vjHnRGJNpjMlMTg7ci0ecDuGhkV34fdkU5Phm2DXPdqSr9s66r7m37H0qwhOQ\nAd+xHUeFAKdDSBnzL+SbKHKDaK/hyNli8tZ9QFfHEcJH/3tQ3/6iJnUWBmPMWGPMDTW85gCnRKQF\ngPdn7hW+aiKwyRhzqtp3nzLGuI0xHuAlYED9Vicw3N4njdXRYznubAVLngmKM5SKyytZsvRLxjk3\nETbk8aB8uIgKThMyu/JJxK00P7YAz7HNtuNclf/8fDv/4vyQyqTOcMMdtuP4XH1bSXOBGd73M4Ar\nnYozncvaSBeLitcUIKeeeQJChMvJQ8PT+X8lUyBvJ+R8ZDtSnV5eeZB/Kn+TyohEGDjTdhwVQpwO\nIXHs9zlrYjk356mAb79uPHwO2f4JneQortFPN6pjCxfVtzA8C4wTkb3AWO9nRKSliPzjDCMRiQHG\nAR9fNv/vRGSbiGQDo4Dgv5bca/qANqyJGMrhsA6w9DfgrrAdqVYnL5SyddnHDHPm4Br5bxAZbzuS\nCjET+3XhrYhpNM1di2dv4D7bxBjDs59t5UfhH+JJ7gbd6zrfJjjVqzAYY84YY8YYY9K9Laez3uHH\njTGTqk1XZIxpaoy5cNn8Dxhjehpjehljbqt2IDvoxUS4eHRUOr8sugPOHYJNr9c5jy2//2IHP3C8\nQ2WT1qBnIikLXE4Hrcc/xiFPKoWf/XvAtl8/yz5Bz+Mf0oaTOMY/A47GeY1w41yrAPHgje3IiR7E\n9rCemCW/gZJztiN9w9Yj52Hr+3SXQ7jG/hxcEbYjqRB1W9/2vB33bZrk76Fi8zu243xDcXklz83f\nwPfCZ2M6jIb0sbYjNRgtDA0oMszJE2PS+VHhdCg9D8t/ZzvSJYwx/GHuBp4Ofw93y35ww522I6kQ\n5nQIwyc/zBZPR8oX/Crgntfw58V7mVr0NrEUIzcFzxlU10MLQwOb2r8NRUndmecaX/Ugn7zdtiP9\nw5wtxxlx4hWacgHnzX9otLvFKngM65zC3OaPE1OWS8mi39qO8w+7TuazetUyHnQtQvrOgNQetiM1\nKP2foIGFuxz8+6Ru/KzgdsodUfDZ9wPiHvTnisp5+9Mv+bbrS0zfGZDW13YkpQCYesfdzHKPJHz9\n3+HUDttxcHsMP/loK/8v7BUkOhHG/Mx2pAanhcEPxndPpUuH9jzrvg8Or4LNb9iOxG/n5fCTyucw\nkfE4QuAXXQWPLs3jONrvx+SbKAo+/lfrf0i9vPIAnY/Pphd7qw44RydZzeMPWhj8QET46S3deb10\nGAdi+8CCn0HBSWt5Vu87TdzWl8lw7MM16fcQ09RaFqVqMnPiAJ5zzSDu1HrcFp+lvvdUAW8vXMPP\nwt/DtB0CvadZy+JPWhj8pHvLJjx4Y3sePns/nsoSmPuElQt5LpRU8N+zvuBHYR/gTp8APe/yewal\n6hIb4aLf5MdZ5u6NZ8HP4Mx+v2coq3Tzg/c38zvX/xDpMsjkvzWa22rXRQuDH/3wpi6UxbXnhbAZ\nsHcBrH/J7xl++clmflr6R1zhkThv/VPI/KKr4DOxV0sWpf8HxW4XxbO+A+5Kvy7/t/N30fvURwxi\nG3LTbyCpg1+Xb5MWBj+KjXDxzJQb+N35kRxMHAwL/sOvB9c+2XyMrtv/m16OA7hufw6atPTbspW6\nHj+8ayS/c32H6FMbqVz8a78t9/NtJ9jw1TJ+Hv4OdBoL/b7tt2UHAi0Mfja6ayp39m3N1JMPUB4W\nB+/fDyXnG3y5u08W8OXHrzHTNQ9P5iPQ/bYGX6ZS9ZUQHc7Yex7jncrRuNb8N+xq+Gd57TqZz68/\nXMMrUX/BGdsMpvxPyO1Za2Gw4JeTexCd1IJ/cX8Pc/5r+OjhBr0FQH5pBb97/SP+4PwLFam9cdz0\nmwZbllK+NqpLCrlDf8k2TzvKP5zZoNcC5RaUMvN/1/EHx19J5QxyzxsQ06zBlheotDBYEBvh4i/T\n+7CoqAOvJTwO+xbBFw1zV8kKt4d/f2MRvy7+FWHRCYTd9z6ERfp8OUo1pCfG9+TVtF9xocJB2Wu3\nQ77vb6uWX1rBI69t4ImSvzPYbEYm/Q5a9/f5coKBFgZLerVK4JeTe/DL4/1Zkzod1r9Y9ewGHzLG\n8Ov3l/PE0R+S4iom/P73oUmLumdUKsA4HcLPH5jIT2N/QWXhWUpeuwOKz/rs+wvLKvnWq+sZl/sq\ndzuWwPAfQeZDPvv+YKOFwaL7BrbloSHtuffwLexOuwNW/gGW/tYnew7GGP4wezX37nqCDq48XPfP\ngpYZPkitlB0J0eH8fOZ0/iP8xzjP7qH05YlQcKruGetwrqicGa+s46YTz/OE82Po8wCM+okPEgcv\nLQyW/eTmbozv3pyJ++9gb8vbYPmzMPfxej2/we0x/OmduUzd8i06Ok9VFYX2w32YWik7WsRH8cTM\nmfww7N/xnDlIyYvj4fTe6/6+/XmF3PXcMqae/AP/5PwUMh+GW/8ScgebL1evwiAid4vIdhHxiEjm\nFaabICK7RWSfiDxVbXiSiCwUkb3en4n1yROMnA7hb/f2ZVyPFow7MJX1bb4Dm9+C126Bswev+fvy\nS8p5+YU/MHPPTJIiPLgemo90GOnr2EpZ0yE5lqcf/y7/EfcrSvJPU/78cDzbru0picYYZm04wmN/\nm82fi5/mHscSGPYDuPmPejNJ6r/HkAPcAayobQIRcQLPUfXM5+7AdBHp7h39FLDYGJMOLPZ+Djnh\nLgd/u7cvkzPSuGfPKF5O+Qkmdwc8PwS+eg4qSq7qe/bs2sa2P0zin3KfoSS+E7GPr0RC9OCZatxa\nxEfxi8cf5o/tX2FbRRqOjx7i3Kt3w9kDdc677egFHnl1NQc/eYaPHf9G9/BcmPpW1c3xQnxP4SIx\nPuhni8gy4IfGmKwaxt0I/MIYc5P389MAxpjfishuYKQx5oT3+c/LjDFd6lpeZmamycr6xqKCnjGG\nV1Yd5Lef76JHTAEvJb5Bau4qiE2F/o9A11sgpdulv7zlRRTtXcXBhf9Dt3NLqJAwcjN/RJuJ3wen\ny97KKOUHxhg+3XyYrz99lm97PiZC3BxrMY7YQTNI6jYCCY/G4zGczC9lxe5TbN68gbSjnzHVtYJU\nzmK6TEIm/BYS29leFb8QkY3GmFq7O/+Yzg+F4S5ggjHmEe/nB4CBxpjHReS8MSbBO1yAcxc/X0lj\nLQwXbfr6HD+fs51txy5wd9NDPBn+CWnn1leNjEyAhNa4nZGUFZwlvOAwLlNJvolma+oUet35Y+JT\n29pdAaX8rKiskk9WbiTsqz8zvnIZCVJEpXHwtbQk3xOJ4KG9nKCJlODBgaf9SFzDnoQOI2xH96ur\nLQx1/kkpIouA5jWM+okxZs71hKuJMcaISK1VSkRmAjMB2rRp46vFBqS+bRKZ89gQPt58jDfXJjDk\nSDtSOMek8M30qjhKyqlcHO5izppmnJDuSPuRDB1zK8PapNqOrpQVMREu7hs7EDPmbfYcyyNrwzyi\n8raSULiXJlJJhMtBZepQTId+ODqPx6G3g7miOguDMaa+DzY9BrSu9rmVdxjAKRFpUa2VlHuFHC8C\nL0LVHkM9MwU8h0O4q18r7urXin25BWQdOseuk31YVVpBhMtBclwkfdokMLVtIk0iw2zHVSogiAhd\nWqXQpVVo3dvI1/zRhN4ApItIe6oKwjTgXu+4ucAM4FnvT5/tgTQmnVLi6JQSZzuGUipE1Pd01Ski\nchS4EZgnIl96h7cUkfkAxphK4HHgS2AnMMsYs937Fc8C40RkLzDW+1kppZRFPjn47G+N/eCzUko1\nhKs9+KxXciillLqEFgallFKX0MKglFLqEloYlFJKXUILg1JKqUtoYVBKKXWJoDxdVUTygMPXOXsz\n4LQP49ik6xKYdF0Ck64LtDXGJNc1UVAWhvoQkayrOY83GOi6BCZdl8Ck63L1tJWklFLqEloYlFJK\nXSIUC8OLtgP4kK5LYNJ1CUy6Llcp5I4xKKWUurJQ3GNQSil1BSFVGERkgojsFpF9IvKU7TzXSkQO\nicg2EdkiIlneYUkislBE9np/JtrOWRMReVVEckUkp9qwWrOLyNPe7bRbRG6yk/qbalmPX4jIMe92\n2SIik6qNC8j1ABCR1iKyVER2iMh2EflX7/Bg3C61rUvQbRsRiRSR9SKy1bsuv/QO9992McaExAtw\nAvuBDkA4sBXobjvXNa7DIaDZZcN+Bzzlff8U8J+2c9aSfTjQF8ipKzvQ3bt9IoD23u3mtL0OV1iP\nX1D1zPPLpw3Y9fDmawH09b6PA/Z4MwfjdqltXYJu2wACxHrfhwHrgEH+3C6htMcwANhnjDlgjCkH\n3gMmW87kC5OB173vXwdut5ilVsaYFcDZywbXln0y8J4xpswYcxDYR9X2s66W9ahNwK4HgDHmhDFm\nk/d9AVUP0kojOLdLbetSm0BeF2OMKfR+DPO+DH7cLqFUGNKAI9U+H+XKvziByACLRGSjiMz0Dks1\nxpzwvj8JpNqJdl1qyx6M2+oJEcn2tpou7uIHzXqISDugD1V/nQb1drlsXSAIt42IOEVkC5ALLDTG\n+HW7hFJhaAyGGmMygInAYyIyvPpIU7VfGZSnmQVzduB5qlqUGcAJ4I9241wbEYkFPgKeNMbkVx8X\nbNulhnUJym1jjHF7/623AgaIyA2XjW/Q7RJKheEY0Lra51beYUHDGHPM+zMXmE3V7uIpEWkB4P2Z\nay/hNaste1BtK2PMKe8/ZA/wEv+3Gx/w6yEiYVT9R/q2MeZj7+Cg3C41rUswbxsAY8x5YCkwAT9u\nl1AqDBuAdBFpLyLhwDRgruVMV01EYkQk7uJ7YDyQQ9U6zPBONgOYYyfhdakt+1xgmohEiEh7IB1Y\nbyHfVbn4j9VrClXbBQJ8PUREgFeAncaY/6o2Kui2S23rEozbRkSSRSTB+z4KGAfswp/bxfYReH++\ngElUna2wH/iJ7TzXmL0DVWcebAW2X8wPNAUWA3uBRUCS7ay15H+Xql35Cqp6oA9fKTvwE+922g1M\ntJ2/jvV4E9gGZHv/kbYI9PXwZhtKVTsiG9jifU0K0u1S27oE3bYBegGbvZlzgJ95h/ttu+iVz0op\npS4RSq0kpZRSV0ELg1JKqUtoYVBKKXUJLQxKKaUuoYVBKaXUJbQwKKWUuoQWBqWUUpfQwqCUUuoS\n/x/Ktjff/iMSkgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x23fff98d550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(generation[0, :])\n",
    "plt.plot(inputDataValidation)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
